// var i;
// var $uI_ChiTiao_UIBindings = require("./UI_ChiTiao_UIBindings");
// var $uIView = require("./UIView");
// var $excel = require("./Excel");
// var $buffMag = require("./BuffMag");
// var $bundleConfig = require("./BundleConfig");
// var $excelUtil = require("./ExcelUtil");
// var $gameGlobalVariable = require("./GameGlobalVariable");
// var $gameDataManager = require("./GameDataManager");
// var $commonUtils = require("./CommonUtils");
// var $playerDataManager = require("./PlayerDataManager");
// var $const_Common = require("./Const_Common");
// var $guideControl = require("./GuideControl");
// var $logManager = require("./LogManager");
// var $aDManager = require("./ADManager");
// var $aIControl = require("./AIControl");
// var $audioManager = require("./AudioManager");
// var $eventManager = require("./EventManager");
// var $evenType = require("./EvenType");
// var B = cc._decorator;
// var k = B.ccclass;
// var P = B.property;
// var G = B.inspector;
// var D = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.auto_ui = null;
//         t.citiaoNode = null;
//         t.btNode = null;
//         t.huanNode = null;
//         t.allNode = null;
//         t.nowdata = {};
//         t.iseff = !1;
//         t.nowcitiao = [];
//         t.nowSelectId = 1;
//         t.isClick = !1;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype._show = function (e) {
//         var t = [];
//         for (var o = 1; o < arguments.length; o++) {
//             t[o - 1] = arguments[o];
//         }
//         this.btNode.scale = 0;
//         this.nowdata = e;
//         $logManager.LogMgr.debug(e, t);
//         this.initCiTiao();
//         this.updateCiShu();
//         this.updateBtNode();
//         $commonUtils.default.cleanGold();
//     };
//     t.prototype.updateBtNode = function () {
//         if ($gameGlobalVariable.GameGlobalVariable.huanyipi <= 0) {
//             this.huanNode.active = !1;
//         }
//         if ($gameGlobalVariable.GameGlobalVariable.allhave <= 0) {
//             this.allNode.active = !1;
//         }
//     };
//     t.prototype.updateCiShu = function () {
//         var e = $excelUtil.ExcelUtil.getSameData($excel.Excel.shuiguoconfig_all, "configkey", "huanyipin")[0].value;
//         this.auto_ui.txt_huanyipilb.string = $gameGlobalVariable.GameGlobalVariable.huanyipi + "/" + e;
//         var t = $excelUtil.ExcelUtil.getSameData($excel.Excel.shuiguoconfig_all, "configkey", "allhave")[0].value;
//         this.auto_ui.txt_allhavelb.string = $gameGlobalVariable.GameGlobalVariable.allhave + "/" + t;
//         var o = 2;
//         var n = $gameGlobalVariable.GameGlobalVariable.nowlevel;
//         if (-1 == $gameGlobalVariable.GameGlobalVariable.nowlevel) {
//             o = 1;
//             n = $gameGlobalVariable.GameGlobalVariable.teshulevel;
//         }
//         $gameDataManager.GameDataMgr.updateNowLevel(
//             n,
//             $gameGlobalVariable.GameGlobalVariable.huanyipi,
//             $gameGlobalVariable.GameGlobalVariable.allhave,
//             o
//         );
//     };
//     t.prototype.showEff = function () {
//         var e = this;
//         $audioManager.AudioMgr.playEffect("sound/bufftanchu", !1, $bundleConfig.BundleNames.Game);
//         var t = this.citiaoNode.children;
//         t[0].scale = 0;
//         t[1].scale = 0;
//         t[2].scale = 0;
//         this.btNode.scale = 0;
//         var o = 0;
//         this.schedule(
//             function () {
//                 if (o < 3) {
//                     cc.tween(t[o])
//                         .to(0.2, {
//                             scale: 1.1
//                         })
//                         .to(0.1, {
//                             scale: 1
//                         })
//                         .start();
//                 } else {
//                     cc.tween(e.btNode)
//                         .to(0.2, {
//                             scale: 1.1
//                         })
//                         .to(0.1, {
//                             scale: 1
//                         })
//                         .call(function () {
//                             var o = (e.node.height - 1334) / 2;
//                             if (
//                                 $playerDataManager.PlayerDataMgr.GetGuideIndexByTaskName(
//                                     $const_Common.GuideName.战斗背包
//                                 ) == $const_Common.GameBagGuideIndex.引导词条7
//                             ) {
//                                 var n = e;
//                                 var i = t[0].convertToWorldSpaceAR(cc.v2(0, 0));
//                                 var a = cc.size(t[0].width, t[0].height);
//                                 $guideControl.GuideCtrl.ShowGuide({
//                                     callBack: function () {
//                                         n.onClick1();
//                                         $playerDataManager.PlayerDataMgr.SetGuideIndex(
//                                             $const_Common.GuideName.战斗背包,
//                                             $const_Common.GameBagGuideIndex.引导词条7完结
//                                         );
//                                     },
//                                     sayStr: "升级后可以获得属性提升，选择这个毒蘑菇的特性吧",
//                                     sayNodePos: cc.v2(0, 500 + o),
//                                     wPos: i,
//                                     size: a
//                                 });
//                             } else {
//                                 e.AICheck();
//                             }
//                         })
//                         .start();
//                 }
//                 o += 1;
//             },
//             0.1,
//             3
//         );
//     };
//     t.prototype.onHuanYiPi = function () {
//         var e = this;
//         var t = "视频换一批词条";
//         if (1 == $gameGlobalVariable.GameGlobalVariable.isTeShuLevel()) {
//             t = "无尽模式视频换一批词条";
//         } else {
//             {
//                 var o =
//                     $gameDataManager.GameDataMgr.getNowLevelBoshuState(
//                         $gameGlobalVariable.GameGlobalVariable.nowlevel,
//                         2
//                     ) + 1;
//                 t = $gameGlobalVariable.GameGlobalVariable.nowlevel + "章_" + o + "波_" + t;
//             }
//         }
//         $aDManager.ADMgr.showRewardedVideo(t, function () {
//             $gameGlobalVariable.GameGlobalVariable.subHuanYiPi();
//             e.updateBtNode();
//             e.updateCiShu();
//             e.initCiTiao();
//         });
//     };
//     t.prototype.initCiTiao = function () {
//         return __awaiter(this, void 0, void 0, function () {
//             var e;
//             var t;
//             var o;
//             var n;
//             var i;
//             var a;
//             var r;
//             var c;
//             var l;
//             var u;
//             return __generator(this, function (s) {
//                 switch (s.label) {
//                     case 0:
//                         if (this.iseff) {
//                             return [2];
//                         }
//                         if (
//                             $playerDataManager.PlayerDataMgr.GetGuideIndexByTaskName(
//                                 $const_Common.GuideName.战斗背包
//                             ) == $const_Common.GameBagGuideIndex.引导词条7
//                         ) {
//                             this.nowcitiao.push($excel.Excel.shuiguocitiao(45));
//                             this.nowcitiao.push($excel.Excel.shuiguocitiao(53));
//                             this.nowcitiao.push($excel.Excel.shuiguocitiao(56));
//                         } else {
//                             e = this.nowdata.nowbo;
//                             t = !0;
//                             5 == e && 1 == $gameGlobalVariable.GameGlobalVariable.nowlevel && (t = !1);
//                             this.nowcitiao = $buffMag.BuffMgr.getNowCiTiao(t);
//                         }
//                         console.log("当前词条下信息", this.nowcitiao);
//                         o = this.citiaoNode.children;
//                         n = 0;
//                         s.label = 1;
//                     case 1:
//                         if (n < this.nowcitiao.length) {
//                             return (
//                                 (i = this.nowcitiao[n]),
//                                 ((a = o[n]).active = !0),
//                                 (r = a.getChildByName("context").getComponent(cc.RichText)),
//                                 this.setCiTiaoContent(r, i),
//                                 (c = a.getChildByName("diejia")),
//                                 -1 != i.citiaochuxian ? (c.active = !0) : (c.active = !1),
//                                 [
//                                     4,
//                                     this._loadRes(
//                                         $bundleConfig.BundleNames.Game,
//                                         "res/战斗buff/citiao" + i.quality,
//                                         cc.SpriteFrame
//                                     )
//                                 ]
//                             );
//                         } else {
//                             return [3, 5];
//                         }
//                     case 2:
//                         l = s.sent();
//                         a.getChildByName("img").getComponent(cc.Sprite).spriteFrame = l;
//                         return [
//                             4,
//                             this._loadRes(
//                                 $bundleConfig.BundleNames.Common,
//                                 "res/skillicon/skill_" + i.id,
//                                 cc.SpriteFrame
//                             )
//                         ];
//                     case 3:
//                         u = s.sent();
//                         a.getChildByName("icon1").getComponent(cc.Sprite).spriteFrame = u;
//                         s.label = 4;
//                     case 4:
//                         n++;
//                         return [3, 1];
//                     case 5:
//                         this.showEff();
//                         return [2];
//                 }
//             });
//         });
//     };
//     t.prototype.setCiTiaoContent = function (e, t) {
//         var o = t.citiaomiaoshu;
//         var n = $excel.Excel.shuiguobuff(t.citiaoshuzhitype);
//         var i = (o = $commonUtils.default.replaceSymbols(o, "n", ["\n"])).split("X");
//         var a = "";
//         if (i.length > 1) {
//             for (var r = 0; r < i.length; r++) {
//                 var c = i[r];
//                 if (n.value[r] && r < c.length - 1 && 44 != t.id) {
//                     a += "<color=#ffffff>" + c + "</c><color=#00ff00>" + n.value[r] + "</color>";
//                 } else {
//                     a += "<color=#ffffff>" + c + "</c>";
//                 }
//             }
//         } else {
//             a = i[0];
//         }
//         a = "<outline color=#000000 width = 3>" + a + "</outline>";
//         e.string = a;
//     };
//     t.prototype.onClickAll = function () {
//         var e = this;
//         if (!this.iseff) {
//             var t = "视频全都要词条";
//             if (1 == $gameGlobalVariable.GameGlobalVariable.isTeShuLevel()) {
//                 t = "无尽模式视频全都要词条";
//             } else {
//                 {
//                     var o =
//                         $gameDataManager.GameDataMgr.getNowLevelBoshuState(
//                             $gameGlobalVariable.GameGlobalVariable.nowlevel,
//                             2
//                         ) + 1;
//                     t = $gameGlobalVariable.GameGlobalVariable.nowlevel + "章_" + o + "波_" + t;
//                 }
//             }
//             $aDManager.ADMgr.showRewardedVideo(t, function () {
//                 $gameGlobalVariable.GameGlobalVariable.suballHave();
//                 e.updateBtNode();
//                 e.updateCiShu();
//                 $buffMag.BuffMgr.addNowCiTiao(e.nowcitiao[0]);
//                 $buffMag.BuffMgr.addNowCiTiao(e.nowcitiao[1]);
//                 $buffMag.BuffMgr.addNowCiTiao(e.nowcitiao[2]);
//                 e._close();
//                 e.nowdata.back();
//                 setTimeout(function () {
//                     $eventManager.EventMgr.dispatchEvent($evenType.EVENT_TYPE.Game_Add_CiTiao);
//                 }, 100);
//             });
//         }
//     };
//     t.prototype.onClick1 = function () {
//         var e = this;
//         if (!this.iseff) {
//             var t = this.citiaoNode.children;
//             if (!this.isClick) {
//                 this.isClick = !0;
//                 t[2].opacity = 0;
//                 t[1].opacity = 0;
//                 t[0].opacity = 255;
//                 cc.tween(t[0])
//                     .to(
//                         0.4,
//                         {
//                             scale: 1.1
//                         },
//                         {
//                             easing: "backOut"
//                         }
//                     )
//                     .delay(0.2)
//                     .call(function () {
//                         e.nowSelectId = 1;
//                         e.onCloseView();
//                         e.isClick = !1;
//                     })
//                     .start();
//             }
//         }
//     };
//     t.prototype.onClick2 = function () {
//         var e = this;
//         if (!this.iseff) {
//             var t = this.citiaoNode.children;
//             if (!this.isClick) {
//                 this.isClick = !0;
//                 t[2].opacity = 0;
//                 t[0].opacity = 0;
//                 t[1].opacity = 255;
//                 cc.tween(t[1])
//                     .to(
//                         0.4,
//                         {
//                             scale: 1.1
//                         },
//                         {
//                             easing: "backOut"
//                         }
//                     )
//                     .delay(0.2)
//                     .call(function () {
//                         e.nowSelectId = 2;
//                         e.onCloseView();
//                         e.isClick = !1;
//                     })
//                     .start();
//             }
//         }
//     };
//     t.prototype.onClick3 = function () {
//         var e = this;
//         if (!this.iseff) {
//             var t = this.citiaoNode.children;
//             if (!this.isClick) {
//                 this.isClick = !0;
//                 t[1].opacity = 0;
//                 t[0].opacity = 0;
//                 t[2].opacity = 255;
//                 cc.tween(t[2])
//                     .delay(0.2)
//                     .to(
//                         0.4,
//                         {
//                             scale: 1.1
//                         },
//                         {
//                             easing: "backOut"
//                         }
//                     )
//                     .call(function () {
//                         e.nowSelectId = 3;
//                         e.onCloseView();
//                         e.isClick = !1;
//                     })
//                     .start();
//             }
//         }
//     };
//     t.prototype.onCloseView = function () {
//         $buffMag.BuffMgr.addNowCiTiao(this.nowcitiao[this.nowSelectId - 1]);
//         this._close();
//         this.nowdata.back();
//         $eventManager.EventMgr.dispatchEvent($evenType.EVENT_TYPE.Game_Add_CiTiao);
//     };
//     t.prototype.AICheck = function () {
//         if ($aIControl.default._instance.isOpen) {
//             var e = this;
//             if ($excelUtil.ExcelUtil.getSameData($excel.Excel.shuiguoconfig_all, "configkey", "allhave")[0].value > 0) {
//                 var t = 0;
//                 this.nowcitiao.forEach(function (e) {
//                     if (e.quality > 1) {
//                         t++;
//                     }
//                 });
//                 if (t >= 2) {
//                     return void $aIControl.default._instance.ShowClickBtn(this.allNode, function () {
//                         e.onClickAll();
//                     });
//                 }
//             }
//             var o = 0;
//             var n = 0;
//             for (var i = 0; i < this.nowcitiao.length; i++) {
//                 var a = this.nowcitiao[i];
//                 if (a.quality > n) {
//                     n = a.quality;
//                     o = i;
//                 }
//             }
//             var r = null;
//             var c = null;
//             switch (o) {
//                 case 0:
//                     r = this.citiaoNode.children[0];
//                     c = this.onClick1.bind(this);
//                     break;
//                 case 1:
//                     r = this.citiaoNode.children[1];
//                     c = this.onClick2.bind(this);
//                     break;
//                 case 2:
//                     r = this.citiaoNode.children[2];
//                     c = this.onClick3.bind(this);
//             }
//             $aIControl.default._instance.ShowClickBtn(r, c);
//         }
//     };
//     __decorate([P($uI_ChiTiao_UIBindings.default)], t.prototype, "auto_ui", void 0);
//     __decorate([P(cc.Node)], t.prototype, "citiaoNode", void 0);
//     __decorate([P(cc.Node)], t.prototype, "btNode", void 0);
//     __decorate([P(cc.Node)], t.prototype, "huanNode", void 0);
//     __decorate([P(cc.Node)], t.prototype, "allNode", void 0);
//     return __decorate([k], t);
// })($uIView.default);
// exports.default = D;


// import UI_ChiTiao_UIBindings from "./UI_ChiTiao_UIBindings";
// import UIView from "./UIView";
// import { Excel } from "./Excel";
// import { BuffMgr } from "./BuffMag";
// import { BundleNames } from "./BundleConfig";
// import { ExcelUtil } from "./ExcelUtil";
// import { GameGlobalVariable } from "./GameGlobalVariable";
// import { GameDataMgr } from "./GameDataManager";
// import CommonUtils from "./CommonUtils";
// import { PlayerDataMgr } from "./PlayerDataManager";

// import { GuideCtrlInstance } from "./GuideControl";
// import { LogMgr } from "./LogManager";
// import { ADMgr } from "./ADManager";
// import AIControl from "./AIControl";
// import { AudioMgr } from "./AudioManager";
// import { EventMgrInstance } from "./EventManager";
// import { EVENT_TYPE } from "./EvenType";
// import { GuideName, GameBagGuideIndex } from "./Const_Common";

// const { ccclass, property, inspector } = cc._decorator;

// /**
//  * 建议类名: ChiTiaoView
//  */
// @ccclass
// class UI_ChiTiao extends UIView {
//     @property(UI_ChiTiao_UIBindings)
//     auto_ui: UI_ChiTiao_UIBindings = null;

//     @property(cc.Node)
//     citiaoNode: cc.Node = null;

//     @property(cc.Node)
//     btNode: cc.Node = null;

//     @property(cc.Node)
//     huanNode: cc.Node = null;

//     @property(cc.Node)
//     allNode: cc.Node = null;

//     private nowdata: any = {};
//     private iseff: boolean = false;
//     private nowcitiao: any[] = [];
//     private nowSelectId: number = 1;
//     private isClick: boolean = false;

//     /**
//      * 显示界面
//      * @param e - 当前数据
//      * @param args - 其他参数
//      * 建议方法名: showView
//      */
//     _show(e: any, ...args: any[]): void {
//         this.btNode.scale = 0;
//         this.nowdata = e;
//         LogMgr.debug(e, args);
//         this.initCiTiao();
//         this.updateCiShu();
//         this.updateBtNode();
//         CommonUtils.cleanGold();
//     }

//     /**
//      * 更新按钮节点
//      * 建议方法名: updateButtonNode
//      */
//     updateBtNode(): void {
//         if (GameGlobalVariable.huanyipi <= 0) {
//             this.huanNode.active = false;
//         }
//         if (GameGlobalVariable.allhave <= 0) {
//             this.allNode.active = false;
//         }
//     }

//     /**
//      * 更新次数
//      * 建议方法名: updateCount
//      */
//     updateCiShu(): void {
//         const huanyipinValue = ExcelUtil.getSameData(Excel.shuiguoconfig_all, "configkey", "huanyipin")[0].value;
//         this.auto_ui.txt_huanyipilb.string = `${GameGlobalVariable.huanyipi}/${huanyipinValue}`;
//         const allhaveValue = ExcelUtil.getSameData(Excel.shuiguoconfig_all, "configkey", "allhave")[0].value;
//         this.auto_ui.txt_allhavelb.string = `${GameGlobalVariable.allhave}/${allhaveValue}`;
//         let levelType = 2;
//         let currentLevel = GameGlobalVariable.nowlevel;
//         if (currentLevel === -1) {
//             levelType = 1;
//             currentLevel = GameGlobalVariable.teshulevel;
//         }
//         GameDataMgr.updateNowLevel(
//             currentLevel,
//             GameGlobalVariable.huanyipi,
//             GameGlobalVariable.allhave,
//             levelType
//         );
//     }

//     /**
//      * 显示特效
//      * 建议方法名: showEffect
//      */
//     showEff(): void {
//         AudioMgr.playEffect("sound/bufftanchu", false, BundleNames.Game);
//         const children = this.citiaoNode.children;
//         children.forEach(child => child.scale = 0);
//         this.btNode.scale = 0;
//         let index = 0;
//         this.schedule(() => {
//             if (index < 3) {
//                 cc.tween(children[index])
//                     .to(0.2, { scale: 1.1 })
//                     .to(0.1, { scale: 1 })
//                     .start();
//             } else {
//                 cc.tween(this.btNode)
//                     .to(0.2, { scale: 1.1 })
//                     .to(0.1, { scale: 1 })
//                     .call(() => {
//                         const offset = (this.node.height - 1334) / 2;
//                         if (PlayerDataMgr.GetGuideIndexByTaskName(GuideName.战斗背包) === GameBagGuideIndex.引导词条7) {
//                             const worldPos = children[0].convertToWorldSpaceAR(cc.v2(0, 0));
//                             const size = cc.size(children[0].width, children[0].height);
//                             GuideCtrlInstance.ShowGuide({
//                                 callBack: () => {
//                                     this.onClick1();
//                                     PlayerDataMgr.SetGuideIndex(GuideName.战斗背包, GameBagGuideIndex.引导词条7完结);
//                                 },
//                                 sayStr: "升级后可以获得属性提升，选择这个毒蘑菇的特性吧",
//                                 sayNodePos: cc.v2(0, 500 + offset),
//                                 wPos: worldPos,
//                                 size: size
//                             });
//                         } else {
//                             this.AICheck();
//                         }
//                     })
//                     .start();
//             }
//             index += 1;
//         }, 0.1, 3);
//     }

//     /**
//      * 换一批
//      * 建议方法名: changeBatch
//      */
//     onHuanYiPi(): void {
//         let videoTitle = "视频换一批词条";
//         if (GameGlobalVariable.isTeShuLevel() === 1) {
//             videoTitle = "无尽模式视频换一批词条";
//         } else {
//             const wave = GameDataMgr.getNowLevelBoshuState(GameGlobalVariable.nowlevel, 2) + 1;
//             videoTitle = `${GameGlobalVariable.nowlevel}章_${wave}波_${videoTitle}`;
//         }
//         ADMgr.showRewardedVideo(videoTitle, () => {
//             GameGlobalVariable.subHuanYiPi();
//             this.updateBtNode();
//             this.updateCiShu();
//             this.initCiTiao();
//         });
//     }

//     /**
//      * 初始化词条
//      * 建议方法名: initializeCiTiao
//      */
//     async initCiTiao(): Promise<void> {
//         if (this.iseff) return;

//         if (PlayerDataMgr.GetGuideIndexByTaskName(GuideName.战斗背包) === GameBagGuideIndex.引导词条7) {
//             this.nowcitiao.push(Excel.shuiguocitiao(45));
//             this.nowcitiao.push(Excel.shuiguocitiao(53));
//             this.nowcitiao.push(Excel.shuiguocitiao(56));
//         } else {
//             const currentWave = this.nowdata.nowbo;
//             let isNormal = true;
//             if (currentWave === 5 && GameGlobalVariable.nowlevel === 1) {
//                 isNormal = false;
//             }
//             this.nowcitiao = BuffMgr.getNowCiTiao(isNormal);
//         }

//         console.log("当前词条下信息", this.nowcitiao);
//         const children = this.citiaoNode.children;
//         for (let i = 0; i < this.nowcitiao.length; i++) {
//             const citiao = this.nowcitiao[i];
//             const node = children[i];
//             node.active = true;
//             const context = node.getChildByName("context").getComponent(cc.RichText);
//             this.setCiTiaoContent(context, citiao);
//             const diejia = node.getChildByName("diejia");
//             diejia.active = citiao.citiaochuxian !== -1;

//             const spriteFrame = await this._loadRes(BundleNames.Game, `res/战斗buff/citiao${citiao.quality}`, cc.SpriteFrame);
//             node.getChildByName("img").getComponent(cc.Sprite).spriteFrame = spriteFrame;

//             const iconFrame = await this._loadRes(BundleNames.Common, `res/skillicon/skill_${citiao.id}`, cc.SpriteFrame);
//             node.getChildByName("icon1").getComponent(cc.Sprite).spriteFrame = iconFrame;
//         }
//         this.showEff();
//     }

//     /**
//      * 设置词条内容
//      * @param richText - 富文本组件
//      * @param citiao - 词条数据
//      * 建议方法名: setCiTiaoContent
//      */
//     setCiTiaoContent(richText: cc.RichText, citiao: any): void {
//         let description = citiao.citiaomiaoshu;
//         const buffData = Excel.shuiguobuff(citiao.citiaoshuzhitype);
//         description = CommonUtils.replaceSymbols(description, "n", ["\n"]);
//         const parts = description.split("X");
//         let formattedText = "";
//         if (parts.length > 1) {
//             for (let i = 0; i < parts.length; i++) {
//                 const part = parts[i];
//                 if (buffData.value[i] && i < part.length - 1 && citiao.id !== 44) {
//                     formattedText += `<color=#ffffff>${part}</c><color=#00ff00>${buffData.value[i]}</color>`;
//                 } else {
//                     formattedText += `<color=#ffffff>${part}</c>`;
//                 }
//             }
//         } else {
//             formattedText = parts[0];
//         }
//         formattedText = `<outline color=#000000 width=3>${formattedText}</outline>`;
//         richText.string = formattedText;
//     }

//     /**
//      * 点击全部
//      * 建议方法名: onClickAll
//      */
//     onClickAll(): void {
//         if (!this.iseff) {
//             let videoTitle = "视频全都要词条";
//             if (GameGlobalVariable.isTeShuLevel() === 1) {
//                 videoTitle = "无尽模式视频全都要词条";
//             } else {
//                 const wave = GameDataMgr.getNowLevelBoshuState(GameGlobalVariable.nowlevel, 2) + 1;
//                 videoTitle = `${GameGlobalVariable.nowlevel}章_${wave}波_${videoTitle}`;
//             }
//             ADMgr.showRewardedVideo(videoTitle, () => {
//                 GameGlobalVariable.suballHave();
//                 this.updateBtNode();
//                 this.updateCiShu();
//                 BuffMgr.addNowCiTiao(this.nowcitiao[0]);
//                 BuffMgr.addNowCiTiao(this.nowcitiao[1]);
//                 BuffMgr.addNowCiTiao(this.nowcitiao[2]);
//                 this._close();
//                 this.nowdata.back();
//                 setTimeout(() => {
//                     EventMgrInstance.dispatchEvent(EVENT_TYPE.Game_Add_CiTiao);
//                 }, 100);
//             });
//         }
//     }

//     /**
//      * 点击第一个词条
//      * 建议方法名: onClickFirst
//      */
//     onClick1(): void {
//         if (!this.iseff) {
//             const children = this.citiaoNode.children;
//             if (!this.isClick) {
//                 this.isClick = true;
//                 children[2].opacity = 0;
//                 children[1].opacity = 0;
//                 children[0].opacity = 255;
//                 cc.tween(children[0])
//                     .to(0.4, { scale: 1.1 }, { easing: "backOut" })
//                     .delay(0.2)
//                     .call(() => {
//                         this.nowSelectId = 1;
//                         this.onCloseView();
//                         this.isClick = false;
//                     })
//                     .start();
//             }
//         }
//     }

//     /**
//      * 点击第二个词条
//      * 建议方法名: onClickSecond
//      */
//     onClick2(): void {
//         if (!this.iseff) {
//             const children = this.citiaoNode.children;
//             if (!this.isClick) {
//                 this.isClick = true;
//                 children[2].opacity = 0;
//                 children[0].opacity = 0;
//                 children[1].opacity = 255;
//                 cc.tween(children[1])
//                     .to(0.4, { scale: 1.1 }, { easing: "backOut" })
//                     .delay(0.2)
//                     .call(() => {
//                         this.nowSelectId = 2;
//                         this.onCloseView();
//                         this.isClick = false;
//                     })
//                     .start();
//             }
//         }
//     }

//     /**
//      * 点击第三个词条
//      * 建议方法名: onClickThird
//      */
//     onClick3(): void {
//         if (!this.iseff) {
//             const children = this.citiaoNode.children;
//             if (!this.isClick) {
//                 this.isClick = true;
//                 children[1].opacity = 0;
//                 children[0].opacity = 0;
//                 children[2].opacity = 255;
//                 cc.tween(children[2])
//                     .delay(0.2)
//                     .to(0.4, { scale: 1.1 }, { easing: "backOut" })
//                     .call(() => {
//                         this.nowSelectId = 3;
//                         this.onCloseView();
//                         this.isClick = false;
//                     })
//                     .start();
//             }
//         }
//     }

//     /**
//      * 关闭视图
//      * 建议方法名: closeView
//      */
//     onCloseView(): void {
//         BuffMgr.addNowCiTiao(this.nowcitiao[this.nowSelectId - 1]);
//         this._close();
//         this.nowdata.back();
//         EventMgrInstance.dispatchEvent(EVENT_TYPE.Game_Add_CiTiao);
//     }

//     /**
//      * AI检查
//      * 建议方法名: checkAI
//      */
//     AICheck(): void {
//         if (AIControl._instance.isOpen) {
//             if (ExcelUtil.getSameData(Excel.shuiguoconfig_all, "configkey", "allhave")[0].value > 0) {
//                 let highQualityCount = 0;
//                 this.nowcitiao.forEach(citiao => {
//                     if (citiao.quality > 1) {
//                         highQualityCount++;
//                     }
//                 });
//                 if (highQualityCount >= 2) {
//                     return AIControl._instance.ShowClickBtn(this.allNode, () => {
//                         this.onClickAll();
//                     });
//                 }
//             }
//             let highestQuality = 0;
//             let highestIndex = 0;
//             for (let i = 0; i < this.nowcitiao.length; i++) {
//                 const citiao = this.nowcitiao[i];
//                 if (citiao.quality > highestQuality) {
//                     highestQuality = citiao.quality;
//                     highestIndex = i;
//                 }
//             }
//             let targetNode: cc.Node = null;
//             let clickHandler: Function = null;
//             switch (highestIndex) {
//                 case 0:
//                     targetNode = this.citiaoNode.children[0];
//                     clickHandler = this.onClick1.bind(this);
//                     break;
//                 case 1:
//                     targetNode = this.citiaoNode.children[1];
//                     clickHandler = this.onClick2.bind(this);
//                     break;
//                 case 2:
//                     targetNode = this.citiaoNode.children[2];
//                     clickHandler = this.onClick3.bind(this);
//                     break;
//             }
//             AIControl._instance.ShowClickBtn(targetNode, clickHandler);
//         }
//     }
// }

// export default UI_ChiTiao;

import UIChiTiaoUIBindings from "./UI_ChiTiao_UIBindings";
import UIViewBase from "./UIView";
import { Excel } from "./Excel";
import { BuffMgr } from "./BuffMag";
import { BundleNames } from "./BundleConfig";
import { ExcelUtil } from "./ExcelUtil";
import { GameGlobalVariable } from "./GameGlobalVariable";
import { GameDataMgr } from "./GameDataManager";
import CommonUtils from "./CommonUtils";
import { PlayerDataMgr } from "./PlayerDataManager";
import { GuideCtrlInstance } from "./GuideControl";
import { LogMgr } from "./LogManager";
import { ADMgr } from "./ADManager";
import AICtrl from "./AIControl";
import { AudioMgr } from "./AudioManager";
import { EventMgrInstance } from "./EventManager";
import { EVENT_TYPE } from "./EvenType";
import { GuideName, GameBagGuideIndex } from "./Const_Common";

const { ccclass, property, inspector } = cc._decorator;

/**
 * 建议类名: ChiTiaoView
 */
@ccclass
class ViewChiTiao extends UIViewBase {
    @property(UIChiTiaoUIBindings)
    auto_ui: UIChiTiaoUIBindings = null;

    @property(cc.Node)
    citiaoNode: cc.Node = null;

    @property(cc.Node)
    btNode: cc.Node = null;

    @property(cc.Node)
    huanNode: cc.Node = null;

    @property(cc.Node)
    allNode: cc.Node = null;

    // 优化：完善变量命名
    private currentData: any = {};
    private isEffect: boolean = false;
    private currentCiTiao: any[] = [];
    private currentSelectId: number = 1;
    private isClick: boolean = false;

    /**
     * 显示界面
     * @param data - 当前数据
     * @param args - 其他参数
     * 建议方法名: showView
     */
    _show(data: any, ...args: any[]): void {
        this.btNode.scale = 0;
        this.currentData = data;
        LogMgr.debug(data, args);
        this.initCiTiao();
        this.updateCiShu();
        this.updateBtNode();
        CommonUtils.clearCoins();
    }

    /**
     * 更新按钮节点
     * 建议方法名: updateButtonNode
     */
    updateBtNode(): void {
        if (GameGlobalVariable.huanyipi <= 0) {
            this.huanNode.active = false;
        }
        if (GameGlobalVariable.allhave <= 0) {
            this.allNode.active = false;
        }
    }

    /**
     * 更新次数
     * 建议方法名: updateCount
     */
    updateCiShu(): void {
        const refreshValue = ExcelUtil.getMatchingData(Excel.shuiguoconfig_all, "configkey", "huanyipin")[0].value;
        this.auto_ui.txt_huanyipilb.string = `${GameGlobalVariable.huanyipi}/${refreshValue}`;
        const allHaveValue = ExcelUtil.getMatchingData(Excel.shuiguoconfig_all, "configkey", "allhave")[0].value;
        this.auto_ui.txt_allhavelb.string = `${GameGlobalVariable.allhave}/${allHaveValue}`;
        let levelType = 2;
        let currentLevel = GameGlobalVariable.nowlevel;
        if (currentLevel === -1) {
            levelType = 1;
            currentLevel = GameGlobalVariable.teshulevel;
        }
        GameDataMgr.updateCurrentLevel(
            currentLevel,
            GameGlobalVariable.huanyipi,
            GameGlobalVariable.allhave,
            levelType
        );
    }

    /**
     * 显示特效
     * 建议方法名: showEffect
     */
    showEff(): void {
        AudioMgr.playSoundEffect("sound/bufftanchu", false, BundleNames.Game);
        const children = this.citiaoNode.children;
        children.forEach(child => child.scale = 0);
        this.btNode.scale = 0;
        let currentIndex = 0;
        this.schedule(() => {
            if (currentIndex < 3) {
                cc.tween(children[currentIndex])
                    .to(0.2, { scale: 1.1 })
                    .to(0.1, { scale: 1 })
                    .start();
            } else {
                cc.tween(this.btNode)
                    .to(0.2, { scale: 1.1 })
                    .to(0.1, { scale: 1 })
                    .call(() => {
                        const offset = (this.node.height - 1334) / 2;
                        if (PlayerDataMgr.getGuideIndexByTaskName(GuideName.GameBag) === GameBagGuideIndex.EntryGuide7) {
                            const worldPos = children[0].convertToWorldSpaceAR(cc.v2(0, 0));
                            const size = cc.size(children[0].width, children[0].height);
                            GuideCtrlInstance.showGuide({
                                callBack: () => {
                                    this.onClick1();
                                    PlayerDataMgr.setGuideIndex(GuideName.GameBag, GameBagGuideIndex.EntryGuide7Completion);
                                },
                                sayStr: "升级后可以获得属性提升，选择这个毒蘑菇的特性吧",
                                sayNodePos: cc.v2(0, 500 + offset),
                                wPos: worldPos,
                                size: size
                            });
                        } else {
                            this.AICheck();
                        }
                    })
                    .start();
            }
            currentIndex += 1;
        }, 0.1, 3);
    }

    /**
     * 换一批
     * 建议方法名: changeBatch
     */
    onHuanYiPi(): void {
        let videoTitle = "视频换一批词条";
        if (GameGlobalVariable.isSpecialLevel() === 1) {
            videoTitle = "无尽模式视频换一批词条";
        } else {
            const wave = GameDataMgr.getCurrentLevelWaveState(GameGlobalVariable.nowlevel, 2) + 1;
            videoTitle = `${GameGlobalVariable.nowlevel}章_${wave}波_${videoTitle}`;
        }
        ADMgr.showRewardedVideoAd(videoTitle, () => {
            GameGlobalVariable.decrementHuanYiPi();
            this.updateBtNode();
            this.updateCiShu();
            this.initCiTiao();
        });
    }

    /**
     * 初始化词条
     * 建议方法名: initializeCiTiao
     */
    async initCiTiao(): Promise<void> {
        if (this.isEffect) return;

        if (PlayerDataMgr.getGuideIndexByTaskName(GuideName.GameBag) === GameBagGuideIndex.EntryGuide7) {
            this.currentCiTiao.push(Excel.shuiguocitiao(45));
            this.currentCiTiao.push(Excel.shuiguocitiao(53));
            this.currentCiTiao.push(Excel.shuiguocitiao(56));
        } else {
            const currentWave = this.currentData.nowbo;
            let isNormal = true;
            if (currentWave === 5 && GameGlobalVariable.nowlevel === 1) {
                isNormal = false;
            }
            this.currentCiTiao = BuffMgr.getCurrentCiTiao(isNormal);
        }

        console.log("当前词条下信息", this.currentCiTiao);
        const children = this.citiaoNode.children;
        for (let i = 0; i < this.currentCiTiao.length; i++) {
            const ciTiao = this.currentCiTiao[i];
            const node = children[i];
            node.active = true;
            const context = node.getChildByName("context").getComponent(cc.RichText);
            this.setCiTiaoContent(context, ciTiao);
            const overlay = node.getChildByName("diejia");
            overlay.active = ciTiao.citiaochuxian !== -1;

            const spriteFrame = await this._loadRes(BundleNames.Game, `res/战斗buff/citiao${ciTiao.quality}`, cc.SpriteFrame);
            node.getChildByName("img").getComponent(cc.Sprite).spriteFrame = spriteFrame;

            const iconFrame = await this._loadRes(BundleNames.Common, `res/skillicon/skill_${ciTiao.id}`, cc.SpriteFrame);
            node.getChildByName("icon1").getComponent(cc.Sprite).spriteFrame = iconFrame;
        }
        this.showEff();
    }

    /**
     * 设置词条内容
     * @param richText - 富文本组件
     * @param citiao - 词条数据
     * 建议方法名: setCiTiaoContent
     */
    setCiTiaoContent(richText: cc.RichText, citiao: any): void {
        let description = citiao.citiaomiaoshu;
        const buffData = Excel.shuiguobuff(citiao.citiaoshuzhitype);
        description = CommonUtils.replaceStringSymbols(description, "n", ["\n"]);
        const parts = description.split("X");
        let formattedText = "";
        if (parts.length > 1) {
            for (let i = 0; i < parts.length; i++) {
                const part = parts[i];
                if (buffData.value[i] && i < part.length - 1 && citiao.id !== 44) {
                    formattedText += `<color=#ffffff>${part}</c><color=#00ff00>${buffData.value[i]}</color>`;
                } else {
                    formattedText += `<color=#ffffff>${part}</c>`;
                }
            }
        } else {
            formattedText = parts[0];
        }
        formattedText = `<outline color=#000000 width=3>${formattedText}</outline>`;
        richText.string = formattedText;
    }

    /**
     * 点击全部
     * 建议方法名: onClickAll
     */
    onClickAll(): void {
        if (!this.isEffect) {
            let videoTitle = "视频全都要词条";
            if (GameGlobalVariable.isSpecialLevel() === 1) {
                videoTitle = "无尽模式视频全都要词条";
            } else {
                const wave = GameDataMgr.getCurrentLevelWaveState(GameGlobalVariable.nowlevel, 2) + 1;
                videoTitle = `${GameGlobalVariable.nowlevel}章_${wave}波_${videoTitle}`;
            }
            ADMgr.showRewardedVideoAd(videoTitle, () => {
                GameGlobalVariable.decrementAllHave();
                this.updateBtNode();
                this.updateCiShu();
                BuffMgr.addCurrentCiTiao(this.currentCiTiao[0]);
                BuffMgr.addCurrentCiTiao(this.currentCiTiao[1]);
                BuffMgr.addCurrentCiTiao(this.currentCiTiao[2]);
                this._close();
                this.currentData.back();
                setTimeout(() => {
                    EventMgrInstance.emitEvent(EVENT_TYPE.Game_Add_CiTiao);
                }, 100);
            });
        }
    }

    /**
     * 点击第一个词条
     * 建议方法名: onClickFirst
     */
    onClick1(): void {
        if (!this.isEffect) {
            const children = this.citiaoNode.children;
            if (!this.isClick) {
                this.isClick = true;
                children[2].opacity = 0;
                children[1].opacity = 0;
                children[0].opacity = 255;
                cc.tween(children[0])
                    .to(0.4, { scale: 1.1 }, { easing: "backOut" })
                    .delay(0.2)
                    .call(() => {
                        this.currentSelectId = 1;
                        this.onCloseView();
                        this.isClick = false;
                    })
                    .start();
            }
        }
    }

    /**
     * 点击第二个词条
     * 建议方法名: onClickSecond
     */
    onClick2(): void {
        if (!this.isEffect) {
            const children = this.citiaoNode.children;
            if (!this.isClick) {
                this.isClick = true;
                children[2].opacity = 0;
                children[0].opacity = 0;
                children[1].opacity = 255;
                cc.tween(children[1])
                    .to(0.4, { scale: 1.1 }, { easing: "backOut" })
                    .delay(0.2)
                    .call(() => {
                        this.currentSelectId = 2;
                        this.onCloseView();
                        this.isClick = false;
                    })
                    .start();
            }
        }
    }

    /**
     * 点击第三个词条
     * 建议方法名: onClickThird
     */
    onClick3(): void {
        if (!this.isEffect) {
            const children = this.citiaoNode.children;
            if (!this.isClick) {
                this.isClick = true;
                children[1].opacity = 0;
                children[0].opacity = 0;
                children[2].opacity = 255;
                cc.tween(children[2])
                    .delay(0.2)
                    .to(0.4, { scale: 1.1 }, { easing: "backOut" })
                    .call(() => {
                        this.currentSelectId = 3;
                        this.onCloseView();
                        this.isClick = false;
                    })
                    .start();
            }
        }
    }

    /**
     * 关闭视图
     * 建议方法名: closeView
     */
    onCloseView(): void {
        BuffMgr.addCurrentCiTiao(this.currentCiTiao[this.currentSelectId - 1]);
        this._close();
        this.currentData.back();
        EventMgrInstance.emitEvent(EVENT_TYPE.Game_Add_CiTiao);
    }

    /**
     * AI检查
     * 建议方法名: checkAI
     */
    AICheck(): void {
        if (AICtrl._instance.isOpen) {
            if (ExcelUtil.getMatchingData(Excel.shuiguoconfig_all, "configkey", "allhave")[0].value > 0) {
                let highQualityCount = 0;
                this.currentCiTiao.forEach(ciTiao => {
                    if (ciTiao.quality > 1) {
                        highQualityCount++;
                    }
                });
                if (highQualityCount >= 2) {
                    return AICtrl._instance.displayClickButton(this.allNode, () => {
                        this.onClickAll();
                    });
                }
            }
            let highestQuality = 0;
            let highestIndex = 0;
            for (let i = 0; i < this.currentCiTiao.length; i++) {
                const ciTiao = this.currentCiTiao[i];
                if (ciTiao.quality > highestQuality) {
                    highestQuality = ciTiao.quality;
                    highestIndex = i;
                }
            }
            let targetNode: cc.Node = null;
            let clickHandler: Function = null;
            switch (highestIndex) {
                case 0:
                    targetNode = this.citiaoNode.children[0];
                    clickHandler = this.onClick1.bind(this);
                    break;
                case 1:
                    targetNode = this.citiaoNode.children[1];
                    clickHandler = this.onClick2.bind(this);
                    break;
                case 2:
                    targetNode = this.citiaoNode.children[2];
                    clickHandler = this.onClick3.bind(this);
                    break;
            }
            AICtrl._instance.displayClickButton(targetNode, clickHandler);
        }
    }
}

export default ViewChiTiao;